When a camera captures an image, a two-dimensional (2D) representation of the scene in the field of view of the camera is obtained. However, for many applications, a three-dimensional (3D) reconstruction of the scene is desired. A 3D reconstruction can be obtained by illuminating the scene with a known pattern and taking a photograph of the illuminated scene with the camera. When the point-to-point correspondence of the photograph with the known illumination pattern can be determined, triangulation can be used to determine the depth of each point, and the scene can be reconstructed in three dimensions. The correspondence problem, however, is difficult. With current solutions, there is high latency in image acquisition because many images must be taken, there is a high latency in computation of the correspondence between the multiple images, and/or there is uncertainty in determining the correspondence.